﻿using System;

namespace NCommet.Core.Agents
{
    /// <summary>
    /// IModule is an abstract module that can be loaded by NCommet to provide extra functionality.
    /// Implementations typically register to <see cref="NCommet.Core.Services.EventSink" /> and monitor events.
    /// </summary>
    public interface IModule
    {
        /// <summary>
        /// Initializes the module. This method is called by <see cref="NCommet.Core.Services.NCommetContainer" /> just
        /// after the module is instantiated and added to <see cref="NCommet.Core.Services.NCommetContainer" /> module list.
        /// </summary>
        void InitModule();
    }
}
